home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Sample Code / AOCE Sample Code / PowerTalk Access Modules / Sample SMSAM / SampleSMSAM Source / 2020HalfGateway / BufferDescriptor.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-28  |  1.6 KB  |  55 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        BufferDescriptor.h
  3.  
  4.     Copyright:    © 1991-1994 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Part of the AOCE Sample SMSAM Package.  Consult the license
  8.     which came with this software for your specific legal rights.
  9.  
  10. */
  11.  
  12.  
  13.  
  14. #ifndef __BUFFERDESCRIPTOR__
  15. #define __BUFFERDESCRIPTOR__
  16.  
  17. #ifndef    __DIRECTOBJECT__
  18. #include "DirectObject.h"
  19. #endif
  20.  
  21. #pragma push
  22. #pragma segment BufferDescriptor
  23.  
  24. /***********************************|****************************************/
  25.  
  26. class TBufferDescriptor : TDirectObject 
  27. {
  28. public:        TBufferDescriptor (long bufferSize);    // allocate a buffer of size bufferSize, dataSize = nil
  29.             TBufferDescriptor (long bufferSize, void *buffer, long dataSize = 0); // use buffer as buffPtr, bufferSize as buffSize, dataSize
  30.     virtual    ~TBufferDescriptor();
  31.  
  32.     BufferDescriptor*                BufferDescriptorPtr() const;
  33.     void*                            BufferPtr() const;
  34.     long                            BufferSize() const;
  35.     long                            DataSize() const;
  36.     void                            SetDataSize (long newDataSize);
  37.     
  38.     virtual ostream&                 operator >> ( ostream& ) const;
  39.  
  40. private:    BufferDescriptor        fBuf;
  41.             Boolean                    fAllocatedBuffPtrWithNewPtr;
  42. };
  43.  
  44. /***********************************|****************************************/
  45.  
  46. inline BufferDescriptor* TBufferDescriptor::BufferDescriptorPtr() const { return &fBuf; };
  47. inline void* TBufferDescriptor::BufferPtr() const { return fBuf.buffPtr; };
  48. inline long    TBufferDescriptor::BufferSize() const { return fBuf.buffSize; };
  49. inline long TBufferDescriptor::DataSize() const { return fBuf.dataSize; };
  50.  
  51. /***********************************|****************************************/
  52.  
  53. #pragma pop
  54.  
  55. #endif    // __BUFFERDESCRIPTOR__